#include <iostream>
#include <regex>
#include <vector>
#include <algorithm>

std::string analyze_words(std::string input_s) {
    if (input_s.empty() || std::count(input_s.begin(), input_s.end(), ' ') == 0) {
        return "Мало данных для анализа";
    }
    std::vector<std::string> slovas;
    std::string word;
    std::istringstream iss(input_s);
    while (iss >> word) {
        slovas.push_back(word);
    }
    int num_word = slovas.size();
    int num_capital_cyrillics = std::count_if(slovas.begin(), slovas.end(), [](const std::string& word) {
        return std::regex_match(word.substr(0, 1), std::regex("[А-ЯЁ]"));
    });
    int num_latin_chars = std::count_if(slovas.begin(), slovas.end(), [](const std::string& word) {
        return std::regex_search(word, std::regex("[a-zA-Z]"));
    });
    int num_short_word = std::count_if(slovas.begin(), slovas.end(), [](const std::string& word) {
        return word.length() <= 3;
    });
    std::string longest_words = *std::max_element(slovas.begin(), slovas.end(), [](const std::string& a, const std::string& b) {
        return a.length() < b.length();
    });
    int length_longest_words = longest_words.length();
    int num_hyphen_word = std::count_if(slovas.begin(), slovas.end(), [](const std::string& word) {
        return word.find('-') != std::string::npos;
    });
    return "Кол-во слов: " + std::to_string(num_word) + "\nКол-во слов с заглавной кириллической буквы: " + std::to_string(num_capital_cyrillics) +
           "\nКол-во слов содержащих латинский символ: " + std::to_string(num_latin_chars) + "\nКол-во слов не превышающих 3 символа: " + std::to_string(num_short_word) +
           "\nКол-во слов в составе которых имеется дефис: " + std::to_string(num_hyphen_word) + "\nСамое длинное слово: " + longest_words +
           "\nДлина слова: " + std::to_string(length_longest_words);
}

int main() {
    std::string input_str;
    std::cout << "Введите несколько слов, разделенных пробелом: ";
    std::getline(std::cin, input_str);
    std::string resultes = analyze_words(input_str);
    std::cout << resultes << std::endl;
    return 0;
}

